/**
 * 设置带过期时间的本地缓存
 * @param {string} key 缓存键名
 * @param {*} value 缓存值
 * @param {number} expireTime 过期时间（单位：毫秒）
 */
export function setStorageSyncWithExpire(key, value, expireTime) {
  const cache = {
    value: value,
    expireAt: Date.now() + expireTime, // 计算过期时间点
  };
  wx.setStorageSync(key, cache);
}

/**
 * 获取带过期时间的本地缓存
 * @param {string} key 缓存键名
 * @returns {*} 若未过期返回缓存值，否则返回 null 或 undefined
 */
export function getStorageSyncWithExpire(key) {
  const cache = wx.getStorageSync(key);
  if (!cache || !cache.expireAt) return null;

  if (Date.now() < cache.expireAt) {
    return cache.value;
  } else {
    wx.removeStorageSync(key); // 过期则清除
    return null;
  }
}

/**
 * 获取带过期时间的本地缓存
 * @param {string} key 缓存键名
 * @returns {*} 若未过期返回缓存值，否则返回 null 或 undefined
 */
export function removeStorageSyncWithExpire(key) {
  wx.removeStorageSync(key);
}
